package com.beibei.framework.logger;

/**
 * 日志接口
 * 
 * @author: 309814490@qq.com
 * @version: 2014-02-12
 */
public abstract interface ILogger {

	/**
	 * 获取日志的类
	 * 
	 * @return
	 */
	public abstract String getLoggerType();

	/**
	 * debug级别信息记录
	 * 
	 * @param method
	 *            方法的名�?
	 * @param msg
	 *            方法的简介或业务逻辑的说�?
	 * @return
	 */
	public abstract boolean debug(String method, String msg);

	/**
	 * debug级别信息记录
	 * 
	 * @param method
	 *            方法的名�?
	 * @param userId
	 *            当前用户的唯�?���?
	 * @param msg
	 *            方法的简介或业务逻辑的说�?
	 * @return
	 */
	public abstract boolean debug(String method, String userId, String msg);

	/**
	 * debug级别信息记录
	 * 
	 * @param method
	 *            方法的名�?
	 * @param msg
	 *            方法的简介或业务逻辑的说�?
	 * @param ex
	 *            异常的对�?
	 * @return
	 */
	public abstract boolean debug(String method, String msg, Throwable ex);

	/**
	 * debug级别信息记录
	 * 
	 * @param method
	 *            方法的名�?
	 * @param userId
	 *            当前用户的唯�?���?
	 * @param msg
	 *            方法的简介或业务逻辑的说�?
	 * @param ex
	 *            异常的对�?
	 * @return
	 */
	public abstract boolean debug(String method, String userId, String msg,
			Throwable ex);

	/**
	 * info级别信息记录
	 * 
	 * @param method
	 *            方法的名�?
	 * @param msg
	 *            方法的简介或业务逻辑的说�?
	 * @return
	 */
	public abstract boolean info(String method, String msg);

	/**
	 * info级别信息记录
	 * 
	 * @param method
	 *            方法的名�?
	 * @param userId
	 *            当前用户的唯�?���?
	 * @param msg
	 *            方法的简介或业务逻辑的说�?
	 * @return
	 */
	public abstract boolean info(String method, String userId, String msg);

	/**
	 * info级别信息记录
	 * 
	 * @param method
	 *            方法的名�?
	 * @param msg
	 *            方法的简介或业务逻辑的说�?
	 * @param ex
	 *            异常的对�?
	 * @return
	 */
	public abstract boolean info(String method, String msg, Throwable ex);

	/**
	 * info级别信息记录
	 * 
	 * @param method
	 *            方法的名�?
	 * @param userId
	 *            当前用户的唯�?���?
	 * @param msg
	 *            方法的简介或业务逻辑的说�?
	 * @param ex
	 *            异常的对�?
	 * @return
	 */
	public abstract boolean info(String method, String userId, String msg,
			Throwable ex);

	/**
	 * error级别信息记录
	 * 
	 * @param method
	 *            方法的名�?
	 * @param msg
	 *            方法的简介或业务逻辑的说�?
	 * @return
	 */
	public abstract boolean error(String method, String msg);

	/**
	 * error级别信息记录
	 * 
	 * @param method
	 *            方法的名�?
	 * @param userId
	 *            当前用户的唯�?���?
	 * @param msg
	 *            方法的简介或业务逻辑的说�?
	 * @return
	 */
	public abstract boolean error(String method, String userId, String msg);

	/**
	 * error级别信息记录
	 * 
	 * @param method
	 *            方法的名�?
	 * @param msg
	 *            方法的简介或业务逻辑的说�?
	 * @param ex
	 *            异常的对�?
	 * @return
	 */
	public abstract boolean error(String method, String msg, Throwable ex);

	/**
	 * error级别信息记录
	 * 
	 * @param method
	 *            方法的名�?
	 * @param userId
	 *            当前用户的唯�?���?
	 * @param msg
	 *            方法的简介或业务逻辑的说�?
	 * @param ex
	 *            异常的对�?
	 * @return
	 */
	public abstract boolean error(String method, String userId, String msg,
			Throwable ex);

	public abstract boolean file(String message);

}
